#ifndef FUNC_VARIAS_H_INCLUDED
#define FUNC_VARIAS_H_INCLUDED


typedef struct{int dia, mes,anio;}t_fecha;

typedef struct {long dni;
                char apyn[40], carrera[4], sexo, estado;
                t_fecha fec_nac, fec_ingre, fec_faum, fec_baja;
                int mat_aprob;
                } t_alumno;


#define es_bisiesto(a) (a)%400?!((a)%4)&&(a)%100?1:0:1



int valida_fecha(t_fecha );
void dia_siguiente(t_fecha );
void solicita_path(char *,const char *);
void suma_ndias(t_fecha , int );
int cant_dias_mes(int , int );
int dia_en_fecha(t_fecha , t_fecha );
int dia_entfecha(t_fecha , t_fecha );
int fecha_es_menor(t_fecha, t_fecha);
t_fecha resta_anios(const t_fecha, int);

char menu(const char opc[][70], const char*);
char pedir_opcion(const char opc[][70], const char*, const char*);
int str_len(const char *);
void pausa(const char *);
void intercambio(int *, int *);
void fin_anormal(const char *);
void pasa_a_mayusculas(char *);

//================================================================

int valida_dni (long);
int valida_apyn (const char*);
int valida_fec_nac(t_fecha, t_fecha);
int valida_sexo(char);
int valida_fec_ingre(t_fecha,t_fecha, t_fecha);
int valida_carrera(const char*);
int valida_mat_aprob(int);
int valida_fec_faum(t_fecha,t_fecha,t_fecha);
int valida_estado(const char);
int valida_fec_baja(t_fecha,char);

int valida_datos ( t_alumno, t_fecha );
//================================================================

void func_mod_apyn(t_alumno *);
void func_mod_fecnac(t_alumno *, t_fecha );
void func_mod_fecingre(t_alumno *, t_fecha );
void func_mod_carrera(t_alumno *);
void func_mod_cantmataprob(t_alumno *);
void func_mod_faum(t_alumno *, t_fecha );
void func_mod_sexo(t_alumno *);




#endif // FUNC_VARIAS_H_INCLUDED
